from rest_framework.permissions import BasePermission

# 管理员权限
class AdminPermission(BasePermission):
    """
    管理员权限检查
    检查用户是否为超级用户或管理员类型用户
    """
    def has_permission(self, request, view):
        user = request.user
        return user.is_authenticated and (user.is_superuser or user.user_type == 'ADMIN')


# 部门管理权限
class DepartmentManagePermission(BasePermission):
    """
    部门管理权限
    管理员和测试管理员可以管理部门
    """
    def has_permission(self, request, view):
        user = request.user
        return user.is_authenticated and user.user_type in ['ADMIN', 'MANAGER']


# 用户管理权限
class UserManagePermission(BasePermission):
    """
    用户管理权限
    管理员和测试管理员可以管理用户
    """
    def has_permission(self, request, view):
        user = request.user
        return user.is_authenticated and user.user_type in ['ADMIN', 'MANAGER']


# 测试管理权限
class TestManagePermission(BasePermission):
    """
    测试管理权限
    管理员、测试管理员和测试员可以管理测试
    """
    def has_permission(self, request, view):
        user = request.user
        return user.is_authenticated and user.user_type in ['ADMIN', 'MANAGER', 'TESTER']
